Android 设计模式--单例模式分析

目的

确保在此类中仅有一个实例,自行实例化并提供一个访问它的全局共有静态方法。

使用场景

  1. 频繁的创建对象会消耗过多的系统资源,对性能产生影响(对数据库的访问、访问IO、线程池、网络请求等)。
  2. 某种类型的对象应该有且只有一个,如果生产太多的实例,可能会导致的结果:程序异常,资源使用过量,结果不一等问题(日志对象、注册表对象、窗口管理器、文件系统、计时器、chche等)。

优缺点

优点

避免了对资源的多重占用,从而减少系统内存占用以及性能开销。

缺点

容易引发内存泄漏,对测试造成困难,一定程度上违背单一职责原则、进程被杀状态下有状态不一的问题。

单例模式的实现

无论哪种实现方法,其本质都是隐藏单例类的构造函数,使其对其它类不可见,同时提供唯一的一个实例此类的静态方法!在使用单例类的时必须保证是在线程安全的环境下,并且防止反序列化、反射、克隆等多重复杂情况下能够重新生成新的实例对象!